

#pragma once

#include <boost/functional/hash.hpp>


class EventType
{

	unsigned long mIdent;
	char const * mIdentStr;

public:

	explicit EventType( char const * const identStr )
		: mIdent( HashIdentStr(identStr) ),
		mIdentStr(identStr)
	{}

	unsigned long GetIdent() const
	{
		return mIdent;
	}

	char const * const GetIdentStr() const
	{
		return mIdentStr;
	}

	bool operator== ( EventType const & et ) const
	{
		return ( GetIdent() == et.GetIdent() );
	}

	bool operator< ( EventType const & et ) const
	{
		return ( GetIdent() < et.GetIdent() );
	}

	static unsigned long HashIdentStr( char const * identStr );

};